//
//  TKTableViewController.h
//  TaoKeClient
//
//  Created by YueWen on 2017/10/21.
//  Copyright © 2017年 YueWen. All rights reserved.
//

#import "NWViewController.h"
#import "NWRefresh.h"
#import "NWTableView.h"
#import <MJRefresh/MJRefresh.h>

NS_ASSUME_NONNULL_BEGIN

/// 开发的基础列表控制器
@interface NWTableViewController : NWViewController <UITableViewDelegate,UITableViewDataSource,NWRefresh>

/// 列表视图
@property (nonatomic, strong) NWTableView *tableView;
/// tableView的背景色，默认为white
@property (nonatomic, strong ,readonly)UIColor *tableViewBackgroundColor;
/// tableView的style, 默认为 UITableViewStyleGrouped
@property (nonatomic, assign, readonly)UITableViewStyle tableViewStyle;
/// 默认为 UIEdgeInsetsZero
@property (nonatomic, assign)UIEdgeInsets tableViewConstraintInsets;

#pragma mark - constraintKey

//@property(nonatomic, weak, readonly)NSLayoutConstraint *tb_topConstraint;
//@property(nonatomic, weak, readonly)NSLayoutConstraint *tb_bottomConstraint;

#pragma mark - 上拉下拉刷新

/// 当前页码，默认为1
@property (nonatomic, assign) NSInteger currentPage;
/// 总页码，默认为1
@property (nonatomic, assign) NSInteger totalPage;
/// 是否达到了最大页码
@property (nonatomic, assign, readonly, getter=isAll)BOOL all;
/// 下拉组件
@property (nonatomic, strong) MJRefreshNormalHeader *refreshHeader;
/// 上拉组件
@property (nonatomic, strong) MJRefreshBackStateFooter *refreshFooter;
/// 没有更多信息显示字符串
@property (nonatomic, copy) NSString *titleForFooterRefreshWithNoMoreData;
/// 检测页码
- (void)checkRefreshFooterIsEndRefreshingWithNoMoreData;

#pragma mark - NothingView

/// 未有结果的图片
- (nullable UIImage *)nothingImage;
/// 未有结果的描述
- (nullable NSString *)nothingTitle;
/// 偏移量，上为负，默认为-42.5
- (CGFloat)nothingImageOffset;
/// 是否展示未有结果视图
- (void)showNothingView:(BOOL)isShow;


#pragma mark - 进行约束，如果使用 SnapKit, 重写这个方法并将方法空实现
- (void)makeTableViewConstraints;
/// 注册tableView的cell
- (void)registerTableViewCellsAndReusableView;

@end


NS_ASSUME_NONNULL_END
